package com.example.other.netty.endecode;

public interface Serializer {
    /**
     * 获取具体的序列化算法标识
     * @return
     */
    byte getSerializerAlgorithm();

    /**
     * 将对象转换为二进制
     * @param object
     * @return
     */
    byte[] serialize(Object object);

    /**
     * 二进制转换为java对象
     * @param clazz
     * @param bytes
     * @param <T>
     * @return
     */
    <T> T deserialize(Class<T> clazz, byte[] bytes);

    //定义序列化算法的类型及默认序列化算法
    byte JSON_SERIALIZER = 1;
    Serializer DEFAULT = new JSONSerializer();//实例化一个序列化算法
}
